Field of the Invention
The present invention relates to the field of data synchronization and more particularly to the data store synchronization optimization.
Description of the Related Art
Personal computers no longer are the most common vehicle through which users connect to data communications networks like the Internet. Now that computing can be viewed as being truly everywhere, computer scientists and information technologists have begun to rethink those services that can be provided to meet the needs of mobile computing users. In consequence, the study of pervasive computing has resulted in substantial innovation in the field of network connectivity. “Pervasive computing” has been defined as referring to any non-constrained computing device not physically tethered to a data communications network. Thus, pervasive computing devices refer not only to computers wirelessly linked to networks, but also to handheld computing devices, wearable systems, embedded computing systems and the like.
Most pervasive devices, including notebook computers, handheld computers and even data enabled cellular telephones permit data synchronization with a different computing device, for example a desktop computer. Data synchronization refers to the harmonization of data between two data sources such that the data contained in each data source can be reconciled notwithstanding changes to the data applied in either or both of the data sources. Modern pervasive devices provide for a synchronization process through a direct cable link, a modem link, or a network link to a host computing device. Wireless pervasive devices further can accommodate synchronization over infrared or radio frequency links.
Peer-to-peer synchronization refers to the synchronization not only between different pervasive devices and server data sources, but also between the different pervasive devices themselves. In peer-to-peer synchronization, individual peers can provide updates to a common server data source already known by other peers coupled to the common server data source. Consequently, during subsequent synchronization with the other peers, redundant attempts to apply the known updates will arise. Of course, conflict management during the synchronization process will avoid the introduction of duplicate data, but the process of redundantly applying updates can consume valuable computing resources unnecessarily.
Excessive and unnecessary consumption of computing resources also arises in the context of filtered synchronization. In filtered synchronization, updates can be filtered according to specified filtering criteria. As a result, only a subset of available updates will be pushed to the pervasive device. When the filtering criteria changes, however, it is no longer readily recognizable whether an update had previously been applied to the pervasive device. As a remedy, some synchronization schemes implement an id-list sync algorithm in which a representation of the entire state of the pervasive device is provided to the server, again consuming greater resources than desired.